1. Field of the Invention
This invention relates generally to data processing systems, and more particularly, to the power-on self test routine (POST) executed upon start up of a data processing system such as a personal computer (PC).
2. Description of Related Art
All computers, such as the various models of personal computers, or PC's, produced by IBM, execute "operating system software" that instructs the PC on how to use other programs, termed "application software," such as word processing and spreadsheet programs. Examples of PC operating systems include MS-DOS and WINDOWS, manufactured by Microsoft Corporation, and IBM's OS/2.
Before a PC can run an operating system, it must load the operating system from a disk to the PC's working memory which is ordinarily random access semiconductor memory (RAM). This is carried out through a process known as "bootstrapping," or more simply, "booting" the operating system. Booting occurs automatically when the PC is first turned on, a process called a "cold boot," or by the user while the computer is running ("warm boot").
Bootstrapping performs only two functions, the first being to run a power-on self-test, or POST, routine and the other to search the storage media (floppy diskette or hard disk) for the operating system it will load. These functions are controlled by firmware stored in one or more basic input-output system, or BIOS, chips inside the PC.
The IBM PC operating environment is depicted in FIG. 2, a map of the first 1 M of random access system memory. Within the first 640 K byte region of the system memory is stored base BIOS data, such as interrupt vectors and other machine specific operating parameters such as identification of drives and access to them through BIOS INT 13 functions. This is followed in the same region of memory by the operating system, such as DOS, followed by any application programs. Residing in the upper layers of the system memory, above 640 K (called "upper memory") but beneath the 1 Mbyte boundary, are video data and firmware based BIOS which is fixed for all applications.
The POST, residing in the upper 128 K of memory (BIOS) as shown in the FIG. 2 memory map, initializes all the internal hardware and external hardware connected to the PC, such as memory, drives, adapter boards, etc., and tests and places the hardware in an operational state. The BIOS program then normally checks drive A of the PC to determine if it contains a formatted floppy disk. If a disk is mounted in the drive, the program searches specific locations on the disk to determine if a valid boot record exists. If the floppy drive is empty, the boot program checks the hard drive C for the system files. In the absence of these files, the BIOS will generate an error message.
After locating a disk with a valid boot record, the BIOS program reads the data stored on the first sector of the disk, and copies that data to specific locations in RAM. This information, found in the same location on every formatted disk, constitutes the DOS boot record. The BIOS then passes control to the boot record which instructs the PC on how to load the two hidden operating system files to RAM (the files named IBMBIO.COM and IBMDOS.COM on IBM computers). After loading other operating system files into RAM to carry out the rest of the boot up sequence, the boot record is no longer needed.
The root directory of the boot disk is next searched for a file created by the user (CONFIG.SYS) and which contains commands instructing the operating system how to handle certain operations such as how many files may be opened at a time, and so-called device drivers which describe the existence and characteristics of hardware devices not recognized by BIOS that may be connected to the PC.
Next loaded from the boot disk into RAM is the file COMMAND.COM which is an operating system file containing, among other functions, fundamental DOS commands used throughout application program execution, and a file named AUTOEXEC.BAT created by the user and containing a series of DOS batch file commands or program names to be executed by the PC each time the computer is turned on. This completes the boot up sequence, and at this point the computer is considered fully booted and ready to be used.
The conventional POST routine, having executed early in the boot process, issues a report indicating whether all the devices making up the system configuration are installed, that is, confirms that the system configuration has not changed, and indicating whether the devices are operational. These functions are performed by reading the values of device configuration registers associated with the devices, and comparing those values with prestored values.
If a value associated with a particular device is not able to be read during POST, that device is presumed to have catastrophically failed, for example, by having become unseated from its electrical connection to the bus, or having become open-circuited or otherwise non-functional.
However, the detected device values may not match with the prestored values, not because there is a device failure in the system, but because the system configuration was intentionally changed by the user since the operating system was last booted. In such an event, the POST will check the device inventory with reference to an obsolete configuration.